1. Field of the Invention
The present invention relates to a distributed shared memory multiprocessor and a data processing method of the same.
2. Description of Related Art
In recent years, the processing speed of a single processor is approaching the limit and a multiprocessor, which uses multiple processors performing parallel processes, is highlighted and is already in practical application. A multiprocessor is usually provided with a shared memory for multiple processors to access each other. Such multiprocessor is referred to as a shared memory multiprocessor. Further, the shared memory multiprocessors can be roughly divided into a centralized shared memory type where multiple processors are connected to one shared memory, and a distributed shared memory type where multiple processors each have local memories.
FIG. 6 is a pattern diagram of a distributed shared memory multiprocessor to explain the problem to be solved by the present invention. Each of processor elements PE1 and PE2 provided with CPUs respectively includes local memories LM1 and LM2. Further, the processor elements PE1 and PE2 are connected via a bus. Therefore, the processor element PE1 can also access the local memory LM2, and the processor element PE2 can also access the local memory LM1.
Accordingly, the local memories LM1 and LM2 are shared by the two processor elements PE1 and PE2, and are placed at one logical address space. In such distributed shared memory multiprocessor, a processor element can access its own local memory at high speed. On the other hand, it takes time to access local memories of other processor elements as multiple steps of bridges are routed through. Writing can be carried out at relatively high speed by posted write, thus the problem is the time taken for reading out.
In response, Japanese Unexamined Patent Application Publication No. 5-290000 discloses a distributed shared memory multiprocessor which defines a broadcast region in a logical address space. The broadcast region is a region recognized as the same address region by each processor element. On the other hand, the region is actually the region storing the same data in each local memory. If there is a write request to the broadcast region, the same data is written to each local memory. Further, if there is a read request to the broadcast region, data is read out from the own local memory. Thus data can be read out at high speed.